package com.nkzy.domain.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

//统一返回结果类型类：类中有属性、方法
@Data //lombok插件 生成getter、setter、toString()等方法
@AllArgsConstructor
@NoArgsConstructor
public class Result {
    //三个属性：状态码、提示信息、数据 ，都使用private表示对属性的私有化，封装性
    //面向对象编程：封装性、继承性、多态性
    //构造方法的作用：创建对象
    //构造方法：空参、有参、默认是无参的，无参构造方法，有参构造方法称为方法的重载
    //方法重载：在同一个类中，方法名相同，参数个数不同，或者参数类型不同
    //类是抽象的，对现实世界的抽象，比如：用户、商品、订单、地址、订单详情、支付记录、支付类型、支付状态、
    //用类创建出的对象，称为对象，对象是具体的，
    private Integer code;//状态码,此处可以使用int类型，也可以使用Integer类型，
    private String msg;//提示信息
    private Object data;//数据
//    java数据类型：基础数据类型（简单数据类型）、引用数据类型（复杂数据类型）。
//    基本数据类型（4字节32位存储值）：int、double、char、boolean、long、float、byte、short、char、String
//    引用数据类型：String、数组、集合、对象、枚举、接口、抽象类、抽象方法、
//    引用类型的数据一般都提供了一些方法，便于我们进行操作
//    在定义类的属性时，尽量使用引用类型，基本类型，存储的是值，引用类型，提供很多方法，后续操作可以直接使用
//    为了后续操作方便，在类中可以编写几个静态方法，方便使用
//    静态方法：不需要创建对象，直接使用类名.方法名()
//    这个成功的方法，一般用于保存、修改、删除、
    public  static Result success(){
        return new Result(1,"操作成功",null);
    }
//    静态方法：返回成功，并携带数据，用于查询
    public  static Result success(Object data){
        return new Result(1,"操作成功",data);
    }
    public  static Result error(String msg){
        return new Result(0,msg,null);
    }


}





